Skip to content

Decline Curve Analysis

Decline curve analysis (DCA) for all three flowing phases can be performed within whitson+, both automatically and manually. User-friendly, "drag-and-drop" curve-fitting functionality is also available.

1. Input

The inputs for this analysis are:

  • DCA parameters (\(b\), \(a_i\), \(q_i\))
  • Start (day or month)
  • Total production period (years)
  • Limited Decline Rate (\(a_{lim}\) or \(d_{lim}\)). The user can decide whether to lock in the start day and the DCA parameters, or if these should change freely during the curve fitting.

2. Theory

2.1. Arps Fundamentals

\label{arps}

The classical equation that provides that basis for this module is

where

\(q_i\) = initial flow rate
\(a_i\) = nominal decline rate at time zero
\(b\) = rate exponent
\(q(t)\) = flow rate at time t

Equation 1 is a three-parameter performance-matching equation. When the \(b\) is equal to zero, the flow rate decline is exponential; when \(b\) is 1, the rate decline is called harmonic; and when b is between zero and one, the rate decline is hyperbolic.

2.1.1. Exponential Decline (b = 0)

where \(N(\infty)\) is the ultimate cumulative production.

2.1.2. Hyperbolic Decline (0 < b < 1)

2.1.3. Harmonic Decline (b = 1)

2.1.4. Beyond Hyperbolic (b > 1)

2.2. Other Segment Types

\label{segments}

2.2.1. Linear

2.2.2. Constant

2.2.3. Semi-log

2.2.4. Power Law

2.3. DCA Summary

Type Decline Rate Producing Rate, q Elapsed Time, t Cum. Production, \(Q_{t}\)
Exponential \(a_t = ln(\frac{q_i}{q_t})/t\) \(q_ie^{-a_it}\) \(ln(\frac{q_i}{q_t})/a_i\) \(\frac{q_i-q_t}{a_i}\)
Hyperbolic \(\frac{a_i}{a_t} = (\frac{q_i}{q_t})^b\) \(q_i(1+ba_it)^{-1/b}\) \(\frac{(q_i/q_t)^b-1}{ba_i}\) \(\frac{q_i}{a_i(1-b)}(1-\frac{q_t}{q_i}^{1-b})\)
Harmonic \(\frac{a_i}{a_t} = \frac{q_i}{q_t}\) \(q_i(1+a_it)^{-1}\) \(\frac{(q_i-q_t)}{a_iq_t}\) \(\frac{q_i}{a_i}ln(\frac{q_i}{q_t})\)
Linear \(a_t = \frac{-m}{q_t}\) \(q_i + m t\) \(\frac{q_t - q_i}{m}\) \(\frac{1}{m} \left[q_i(q_t - q_i) + \frac{(q_t - q_i)^2}{2}\right]\)
Constant \(a_t = 0\) \(q_i\) \(t\) \(q_i t\)
Semi-Log \(a_t = ln(\frac{q_i}{q_t})/t\) \(q_ie^{-a_it}\) \(ln(\frac{q_i}{q_t})/a_i\) \(\frac{q_i-q_t}{a_i}\)
Power-Law \(a_t = n \left(\frac{q_t}{q_i}\right)\) \(q_i \left(\frac{q_i}{q_t}\right)^n\) \(t = \left(\frac{q_i}{q_t}\right)^{1/n}\) \(\frac{q_i}{1-n} \left[\left(\frac{q_i}{q_t}\right)^{\frac{1-n}{n}} - t_0^{1-n}\right], \text{ if } n \neq 1\) or \(\frac{q_i}{n} \ln\left(\frac{q_i}{q_t}\right) - q_i \ln(t_0), n = 1\)

where \(q_i\) is the initial production rate, \(q_t\) is the production rate at time t, \(a_i\) is the initial decline rate and \(a_t\) is the decline rate at time t.

Type Cumulative Production Cumulative Production (with time substituted)
Exponential
Hyperbolic
Harmonic
Linear
Constant
Semi-Log
Power-Law or or

Incline Auto Fit Type

The Incline segment in Auto Fit is based on the same Arps equations used for traditional decline curve analysis i.e. harmonic, hyperbolic, and exponential.

What distinguishes it is that it uses a negative nominal decline rate at time zero (aᵢ) and a negative rate exponent (b), allowing the model to capture inclining production rates.

2.4. Decline Rate Type

\label{decline_rate}

Nominal annual decline rate is denoted "a". The effective annual decline rate is denoted "d", with units %/yr. There are two common ways the industry converts annual decline into effective decline,

"Secant Effective" aka "Effective Hyperbolic Decline"

"Tangent Effective" aka "Effective Exponential Decline"

Both of these properties can be converted back by the following equations

Note

These numbers are mere conversions to and from \(a_{i}\) and should yield identical results irrespective of what is chosen. For most folks, it's mainly the matter of preference when it comes to what is communicated in terms of the final results.

The symbols for the different terms can vary somewhat from software to software, so here is a little overview for some handpicked softwares.

Name whitson+ ARIES Harmony PhdWin / SPEE Val Nav
Initial nominal annual decline rate \(a_{i}\) \(A_{i}\) \(a_{i}\) \(D_{i}\) Di (nom)
Secant effective annual decline rate \(d_{sec}\) \(D_{b}\) \(d_{i,sec}\) or \(d_{lim,hyp}\) \(D_{esi}\) Di (eff. sec)
Tangent effective annual decline rate \(d_{tan}\) \(D_{h}\) \(d_{i,tan}\) or \(d_{lim,exp}\) \(D_{ei}\) Di (eff. tan)
Rate exponent b n b b Ni

2.5. Effective Decline: Secant vs Tangent

\label{tangent_secant}

The decline rate is not a constant, but changes with time, since the data plot as a curve on semi-log paper.

The hyperbolic decline is the rate of change of the decline rate with respect to time, or the second derivative of production rate with respect to time.

There are three ways to define the “initial decline rate” for hyperbolic decline – “nominal”, “tangent effective”, and “secant effective".

The figure above illustrates the difference between the tangent effective and secant effective definitions of initial decline rate.

More information about this is provided by SPEE.

2.6. Limited / Modified Decline

The limited decline rate begins when the hyperbolic decline curve transitions into an exponential decline curve at a specified limiting effective decline rate (\(d_{lim}\)). The limiting effective decline rate is converted to a limiting nominal decline rate (\(a_{lim}\)), and the following equations are applied:

When \(d_{tan}\) > \(d_{lim}\):

when \(d_{tan}\) <= \(d_{lim}\):

where

which, also can be simplified into:

2.7. Plot Settings and Straight Lines

\label{decline_rate}

Linear, Semi-Log, and Log-Log plots provide distinct visualizations to identify decline behavior and interpret reservoir characteristics. Each plot highlights specific relationships between production rate and time or cumulative production.

  • Linear: Straight line on a Cartesian plot. Useful for identifying constant rate declines or trends in linear relationships.

  • Semi-Log: Straight line on a semi-log plot. Exponential declines, often typical in fluid-flow-dominated regimes, become linear in this format.

  • Log-Log: Straight line on a log-log plot. Power-law declines, as observed in fractured reservoirs, are best visualized in this plot.

2.7.1. Why Do Linear Segments Look Curved in Rate-Cumulative Space?

A linear segment defined in rate-time space, such as , appears curved in rate-cumulative space due to the integration required to compute cumulative production.

\label{fetkovich}

Cumulative is given by:


To convert to rate-cumulative space (i.e.,), you must solve this nonlinear equation for and substitute back into , resulting in:


Because involves a square root, the final expression for is curved — even though is a straight line. This applies both for declining and increasing (buildup) segments.

2.8. Fetkovich

\label{fetkovich}

Mike Fetkovich advanced Decline Curve Analysis (DCA) by linking it directly to reservoir and physical parameters, with the b-factor playing a central role in this approach. For the b-factor to have physical significance, it must be derived while the well is producing under near-constant bottomhole pressure. The b-factor serves as an indicator of recovery efficiency, or reservoir "energy." A low b-factor signifies a low-energy system with lower recovery efficiency, while a high b-factor represents a higher-energy system with greater recovery potential. The table below outlines general guidelines for interpreting the b-factor and its relationship to reservoir characteristics.

\(b\) value Context
0 Single-phase oil, or single-phase gas at high pressure
0.1 - 0.4 Solution gas drive
0.4 - 0.5 Single-phase gas flow
0.5 - 1 Layered reservoirs
> 1 Infinite acting flow

2.9. Ratio Forecasting

2.9.1. Changing Forecast Type

\label{ratio_forecast}

You can change from considering the primary

2.9.2. Derivation: Why should Ratios be Power-Law?

\label{ratio_forecast}

2.9.3. How to convert Power-Law to Arps?

\label{power-law-to-arps}

For further information, please refer to [1].

3. Decline Curve Analysis in whitson+

3.1. Autofit

The autofit algorithm finds the last segment of the data that is consecutively (continously) non-zero, and fits the DCA parameters to this part of the data only. A single or set of zero rates in the data is typically associated with a shut-in, in which re-initialization of the DCA fit should be performed.

3.1.1. Residual Function

The fitting routine uses the following residual function in the least square routine.

where \(r_i\) is the residual at time \(i\), \(w_i\) is the weight factor of time \(i\), \(t_0\) is the time index and q is the actual rate.

3.1.2. Default Bounds

Parameter Lower Bound Higher Bound Unit
\(q_i\) 40% of max observed q 20% higher than max observed q volume unit / time
\(a_i\) 0 10 /yr
\(b\) 0 2 -

3.1.3. Adjusting default autofit bounds on DCA parameters

\label{autofittingDCAsegments}

Settings Adjustment

You can also adjust the settings for autofitting decline to your data by adjusting the decline parameter ranges and specifying the autofit type as the default modified Arps decline.

The Autofit function will automatically switch to exponential decline when it reaches the limiting decline rate. If the Autofit type is set to Modified Arps, it will fit two segments to the data by default. You can choose to autofit some or all segments at once, and control autofitting for each segment individually using the locks on the decline parameters.

3.1.4. Weighting factors

By default, all days have a weighting factor of 1, except from the days when q = 0, in which the weighting factor is 0.

3.2. DCA on physics-based forecasts

If a physics based forecast has been established for this well via the numerical model, an option to include this data will appear as a toggle, shown below.

\label{autofittingDCAsegments}

You can build a physics-based forecast using the Numerical Model feature, where the reservoir simulation history matches the well and generates a forecast based on your model setup.

Once the model is simulated with a forecast included, you can import the history match into the DCA feature. This allows you to build decline curves for the simulated data—including the forecast—enabling physics-based DCA forecasting.

3.3. General tips

3.3.1. Manually adjusting DCA parameter graphically

In whitson+, users can manually adjust specific points on the DCA plot, each influencing different parameters that define the production decline trend.

\label{manually_adjust_dca}

Adjustment points:

  • First point: modifies both the qi and decline rate. This adjustment impacts the early production and the overall scale of the decline curve.
  • Second point: adjusts the b-factor only, which controls the curvature of the decline trend. A higher b-factor leads to a slower decline in production, while a lower b-factor results in a steeper drop.
  • Third point: alters only the decline rate, influencing the rate at which production decreases over time.

Why manual adjustments matter?

Manually refining these parameters allows users to create more accurate production forecasts, particularly in unconventional reservoirs where decline trends may not fit standard analytical models perfectly. This flexibility helps in optimizing well performance analysis and forecasting long-term production more effectively.

3.3.2. Fit forecasting data points

When utilizing the Lasso or Spray Fit tools to perform DCA forecasting, a subset of the available data points is selected based on the user-defined lasso or spray selection area.

\label{lasso_forecast}

After the selection and fit are performed:

  • The selected data points are visually differentiated by being displayed in a distinct color on the plot.
  • The non-selected data points remain in the background, ensuring clear visual distinction between included and excluded data.

\label{lasso_forecast}

This visual feedback allows users to:

  • Quickly review which data points were used for the forecast generation.
  • Validate the forecast by checking if the selected data appropriately represents the well's production history or expected future trend.
  • Identify and exclude anomalies or non-representative periods, such as operational changes, shut-ins, or erratic production behavior, by adjusting the selection.

3.3.3. Adding multiple decline segments

\label{addingDCAsegments}

You can add multiple Arps decline segments to the data, as proposed by the Modified Arps decline method (2 segments). Each of these segments can be linear incline, constant or the Arps decline type segments - controlled individually by directly entering the inputs, or adjusting the curve on the plot itself to auto-compute the decline parameters for each of them.

Note

Adding multiple segments may be useful to model particular flow regimes, constant rate well control or refrac analysis.

3.3.4. Where does the DCA forecast append to historical data?

\label{addingDCAsegments}

The end date of the forecast on the DCA plot dictates where the forecast is appended to historical data.

The forecast is appended at the earlier of:

  • the last producing day in the well’s history, or

  • the end date of the last forecast segment.

The EUR is calculated based on this setup:

  • If the forecast end date is beyond the last producing day, the entire production history is included, followed by the forecast, to compute the EUR.

  • If the forecast end date is before the last producing day, the forecast is appended from that date onward, and any actual production data after this date is ignored in the EUR calculation.

EUR shown in the top-left box should be exactly equal to the EUR (black line) plotted on the cumulative plot (bottom) at the end of the total production period.

3.3.5. Rate-time decline vs Rate-cum decline

\label{addingDCAsegments}

You can observe the decline fit in rate vs time space or rate vs cumulative space on the same plot (top).

3.3.6. Converting from Rate-Cum to Rate-Time

When transitioning betweem rate-cum and rate-time domains in DCA, it is essential to perserve consistency, particulartly with Estimated Ultimate Recovery (EUR). However, the relationship between rate, time, and cumulative production are nonlinear and sensitive to segment definition.

To maintain the same EUR in both spaces, whitson+ performs a back calculation of the initial segment parameters when switching between domains.

Rate-Cum:

\label{rate-time}

Rate-Time:
\label{rate-time}

  • The forecast end parameters (marked in blue) remain fixed.
  • The segment start parameters (marked in red) are recalculated when switching between domains to ensure that cumulative production and EUR remain consistent.

This approach ensures that the cumulative production curve integrates correctly over time, regardless of whether the input is in rate-time or rate-cum space.

Practical Implication

Switching between rate-time and rate-cum in the DCA module automatically recalculates the segment start or end parameters depending on which domain is active, while holding EUR constant.
This ensures:
1. EUR stability between views
2. Accurate forecast matching
3. Avoidance of manual tuning when switching domains

3.3.7. Linking decline segments

You can use the 'Link to Previous Segment' checkbox for each segment to link the previous segment to this one in time for continuity.
The 'Link Decline Rates' function ensures continuity in both production rates and decline behavior between two consecutive decline segments in a segmented DCA (Decline Curve Analysis) model.

\label{addingDCAsegments}

When the Link to Previous Segment checkbox is selected:

  • The start rates of the current segment (e.g., oil, gas, water) are automatically set to match the end rates of the previous segment.

  • The initial decline parameters of the current segment are computed to ensure a smooth transition from the previous segment.

  • This removes discontinuities and manual adjustments, resulting in a more realistic and physically consistent forecast.

3.3.8. Saving the DCA fit

\label{addingDCAsegments}

You can save your current DCA fit as a Saved Case using the Save Case button. This allows you to create a checkpoint of your current fit before making further adjustments.

Key Features:

  • Use the Save Case button to store the current set of DCA parameters.

  • Saved cases can be visualized on the DCA plot by checking the box under the "Show" column next to each saved case.

  • To restore a previously saved DCA fit, click the three vertical dots next to the case and select Load Case.

  • If you try to save a case using a name that already exists, the system will prompt you to confirm whether you want to overwrite the existing case.

Importing saved Type well DCA case to DCA and saved cases from DCA into Type well

If you fit DCA to the type well, made from a set of wells in the Type Well feature (DCA tab), and save that, you can import this saved DCA fit for the type well into list of saved cases in this feature. This lets you plot your type well decline over the actual well decline to compare.

Alternatively, if you saved the DCA fits for all the wells with the same name, you can import this into the Type well feature such that each of the individual well declines set up with that name is appended to the respective wells and the Type well is built for historical data + individual well declines. This removes the need for forecasting the constructed type well with DCA.

3.3.9. Assigning multiple type wells

In whitson+, there is no restriction on the number of type wells that can be imported and stored within a project. This flexibility enables users to conduct more robust benchmarking and performance evaluation of individual well forecasts against various type well scenarios.

\label{assigning_tw}

For any single well with a forecast, users can:

  • Import multiple type wells to the module.
  • Assign and compare these type wells to the well's DCA forecast.
  • Visually overlay the DCA forecast and type wells on the same plot.

This feature is particularly useful when:

  • Evaluating well performance against AFE (Authorization for Expenditure) or pre-drill expectations.
  • Comparing with prior forecasts or updated type wells to track performance over time.

Each well is associated with one "main" type well, which serves as the default, however:

  • Multiple type wells can be loaded concurrently for side-by-side comparisons.
  • All associated type wells remain stored and accessible for future evaluations.

3.4. Hotkeys

\label{hotkeys}

The following hotkeys are available to streamline your workflow and enhance navigation within the software:

3.4.1. Decline Curve Analysis (DCA)

  • Perform Autofit: Press Alt + Enter to automatically fit the decline curve to the available data.
  • Save Case: Use Ctrl + S to save the current case, ensuring no changes are lost.

3.4.2. Plot Navigation

  • Shift Entire DCA Segment: Hold Alt and drag the mouse to shift the entire decline curve analysis segment on the graph.
  • Zoom: Click and drag the mouse over a region to zoom into specific areas of the plot for detailed analysis.
  • Reset Zoom: Double-click anywhere on the plot to reset the zoom level to the default view.

3.4.3. General Navigation

  • Switch Well: Use PgUp/PgDn to move between wells in the dataset.
  • Cycle to Next Phase: Press Shift + S to cycle between different production phases.
  • Change Phase: Use Shift + O/G/W to switch between oil, gas, and water phases.

4. Export

The results from the DCA feature can to be exported to:

  • Aries
  • ComboCurve
  • Excel
  • PHDWin
  • Mosaic
  • Val Nav

Note that the forecast in the export starts from the end of the uploaded historical data. Hence the best fit qi and decline parameters has to be recalculated for the end of history (as they change with time), as outlined here.

PHDWin: Uses Secant Effective or Tangent Effective Decline?

PHDWin uses Initial Tangent Effective Decline Rate.

4.1. ARIES

4.1.1. Aries Examples

The following outlines how the ARIES export works with a specific example.

For an example well with these parameters.

  • qi = 51.7334 STB/d
  • d_lim = 5.0000 %/yr
  • b = 1.2
  • d_sec = 43.7863 %/yr
  • Cutoff rate = 3.0 STB/d
  • forecast_time = 582.3934 months

There will be 4 cases, these are all shown assuming the parameters are for the oil phase, but the logic is equally applicable for gas and water.

Case 1 - well reaches cutoff rate before d_lim, the ARIES export would look like this:

We have a single line which shows qi, cutoff rate, b and d

DEMOWELL
PRODUCTION
 CUMS 80.1645 0.4055 780.3532
 START 03/2022
 OIL 51.7334 3.0 B/D X MOS B/1.2 43.7863

Case 2 - well reaches cutoff rate after d_lim but before end of forecast period, the ARIES export would look like this:

We have two lines as before, only difference being that instead of putting the period of 582 months (or any number for the case), we put X

DEMOWELL
PRODUCTION
 CUMS 80.1645 0.4055 780.3532
 START 03/2022
 OIL 51.7334 X B/D 5.0000 EXP B/1.2 43.7863
 " X 3.0 B/D X MOS EXP 5.0000

Case 3 - well reaches d_lim and does not reach cut off rate until the end of the forecast period, the ARIES export would look like this:

DEMOWELL
PRODUCTION
 CUMS 80.1645 0.4055 780.3532
 START 03/2022
 OIL 51.7334 X B/D 5.0000 EXP B/1.2 43.7863
 " X X B/D 582.3934 MOS EXP 5.0000

Case 4 - d_sec is lower than d_lim:

In addition to these 3 main cases, there is an exceptional case in which d_sec < d_lim, for example if in the case presented above d_sec was 3.2561 %/yr instead 43.7863 %/yr. The export to Aries would look as follows.

Case 4a - If cutoff rate is not reached before end of forecast period:

 DEMOWELL
 PRODUCTION
  CUMS 80.1645 0.4055 780.3532
  START 03/2022
  OIL 51.7334 X B/D 582.3934 MOS EXP 3.2561

Case 4b - If cutoff rate is reached before end of forecast period:

 DEMOWELL
 PRODUCTION
  CUMS 80.1645 0.4055 780.3532
  START 03/2022
  OIL 51.7334 3.0 B/D X MOS EXP 3.2561

4.1.2. Aries: Secant Effective or Tangent Effective Decline?

In ARIES, the most commonly used format is 'secant effective,' also known as the 'B format.' This is what whitson+ will export to ARIES by default. However, there is also an option to use 'tangent effective,' referred to as the 'H format' in ARIES. Refer to the picture below to see the difference between these formats in ARIES.

\label{addingDCAsegments}

4.2. Benchmarking DCA in whitson+

Several benchmark decline curve analysis cases have been recreated in whitson+ based on a public GitHub repository. These benchmark cases are being evaluated across multiple DCA platforms, and whitson+ consistently delivers some of the most accurate estimates of expected recovery volumes.

You can explore these cases by visiting: whitson+ Forecast Comparison

5. DCA Error Calculations

In whitson+, error calculations for rate and cumulative production during Decline Curve Analysis (DCA) follow the standard Root Mean Square (RMS) error formulation as described here.

This section outlines how RMS is applied specifically in DCA, with emphasis on how rate and cumulative errors are computed.

5.1. Rate Error

The rate RMS error is calculated using the difference between the historical rate data, and the forecasted rate from the DCA

By default, historical data points with zero rate are given a weight of 0 and are excluded from the error calculation.

Equation:

Where:
\(y_{i,\text{hist}} = \text{historical production value for observation} \text{ } 'i'\) \(y_{i,\text{DCA}} = \text{forecasted DCA production value for observation} \text{ } 'i' \)

Examples:

The red-highlighted area indicates the range over which the RMS calculation is performed.

  • Forecast begins after history ends:
    \label{Rateerrorexample1}

  • Forecast starts before history ends: \label{Rateerrorexample1}


5.2. Cumulative Error

The cumulative error is calculated using the difference between the backcalculated forecast cumulative, and the historical cumulative data.

Equation:

Where:
\(y_{i,\text{hist}} = \text{historical cummulative data for observation} \text{ } 'i'\) \(y_{i,\text{DCA}} = \text{forecasted DCA cummulative data for observation} \text{ } 'i' \)

Examples:

The red-highlighted area indicates the range over which the RMS calculation is performed.

  • Forecast starts at end of history:
    \label{Rateerrorexample1}

  • Forecast starts before history ends:
    \label{Rateerrorexample1}

References

[1] Fulford, D., Behmanesh, H., Clarkson, C., Blasingame, T. 2022. On the Relationship between Gas-Oil Ratio and Well Performance for Unconventional Reservoirs. Paper presented at the Unconventional Resources Technology Conference, Houston, TX.